import type { MessageDescriptor } from 'react-intl';

let formatMessage: FormatMessageFunc;

type FormatMessageFunc = (
  descriptor: MessageDescriptor,
  values?: Record<string, string | number | boolean | null | undefined | Date>,
) => string;

export const setApiLocale = (f: FormatMessageFunc) => {
  formatMessage = f;
};

export const noMessageCodes = [210080003];

export const bizCodeMessage = {
  10001: '请求参数验证错误',
  10002: '数据库操作有误',
  10003: '告警规则有误',
  10004: '发送邮件失败',
  10005: '该记录已被删除',
  10006: '暂未设置邮箱地址',

  11100013: '该项目名称已存在！',
  11100016: '该场景下项目不为空，无法删除！',

  210010000: '没有匹配的pvc',
  210010001: 'url not found',
  210010002: '未知错误',
  210010003: '服务器异常',
  210020001: '参数校验失败',
  210020002: '权限认证失败',

  210030001: '创建任务失败',
  210030002: '获取任务列表失败',
  210030003: '获取任务详情失败',
  210030004: '获取任务信息失败',
  210030005: '自动更新任务状态失败',
  210030006: '修改任务状态为指定状态失败',
  210030007: '更改任务名称失败',
  210030008: '删除任务失败',
  210030009: '提交任务失败',

  210040001: '获取任务下的标签列表失败',
  210040002: '获取标签详情失败',
  210040003: '保存标签失败',

  210050001: '创建作业失败',
  210050002: '获取作业列表失败',
  210050003: '获取作业状态统计数失败',
  210050004: '获取作业详情失败',
  210050005: '获取作业下的标注统计数',
  210050006: '更新作业为指定状态失败',
  210050007: '审核作业失败',
  210050008: '提交作业失败',
  210050009: '分配作业标注员失败',
  210050010: '删除作业失败',

  210060001: '创建标注记录失败',
  210060002: '获取任务下的标注信息列表失败',
  210060003: '获取作业下的标注信息列表失败',
  210060004: '获取某标注详情失败',
  210060005: '保存标注信息失败',
  210060006: '更新为指定标注状态失败',

  210070001: '添加图片失败',
  210070002: '获取图片详情失败',
  210070003: '删除图片失败',

  // 210080001: '文件写入失败',
  // 210080002: '创建目录失败',
  // 210080003: '文件已存在',
  // 210080004: '读取文件失败',
  // 210080005: '文件删除失败',

  220010001: 'Not Found Error',
  220010002: '未知错误',
  220010003: '服务器异常',

  220020001: '参数错误',
  220020002: '权限认证错误',

  220030000: '应用错误',
  220030001: '数据集创建错误',
  220030002: '获取数据集失败',
  220030003: '数据集处于未发布状态',
  220030004: '数据集更新失败',

  220030101: '数据集创建失败',
  220030102: '获取数据集失败',
  220030103: '上传数据集临时文件失败',
  220030104: '数据集没有用户名',
  220030105: '数据集不支持文件类型',
  220030106: '数据集存储文件错误',
  220030107: '数据集解压文件错误',
  220030108: '数据集删除文件错误',
  220030109: '数据集更新错误',
  220030110: '数据集绑定错误',
  220030111: '数据集解绑错误',
  220030112: '数据集输出path list错误',
  220030113: '数据集文件规整错误',
  220030114: '数据集文件添加照片错误',
  220030115: '数据集文件删除照片错误',
  220030116: '数据集格式错误',
  220030117: '数据集标注状态加标签错误',
  220030118: '数据集删除错误',
  220030119: '数据集创建发布数据集错误',
  220030120: '当前数据集不允许发布',
  220030121: '当前数据集不允许下载',
  220030122: '数据集更新数据状态错误',
  220030123: '生成下载链接失败',
  220030124: '数据集未标注，不可添加图片',

  220030201: '创建应用错误',
  220030202: '获取应用错误',
  220030203: '应用绑定数据集错误',
  220030212: '当前数据集不允许切分',
  220030213: '数据集创建不可重名',
  220030214: '更新数据集图片数量失败',

  220030301: '创建label错误',
  220030302: '获取label错误',
  220030303: 'label绑定数据集错误',
  220030304: '通过label查找数据集错误',
  220030305: '通过label查找数据集错误',
  220030306: 'label不在数据集内',

  220030401: '创建数据集任务错误',
  220030402: '创建数据集k8s任务错误',
  220030403: '获取数据集任务失败',
  220030404: '数据集抠图任务标注类型不支持',

  240010005: '模型不存在！',
  240020002: 'commit新模型失败',
  240020003: 'rollback模型失败',
  240020004: '进行模型存储准备失败',
  240020005: '新模型记录创建失败',
  240020006: '存储出错',
  240020007: '数据库访问出错',
  240020008: '模型提交超时',
  240020009: 'manifest读取失败',
  2400200010: 'manifest校验失败',
  2400200011: 'manifest数据库字段校验失败',
  2400200012: 'manifest训练字段校验失败',
  2400200013: 'manifest评估字段校验失败',
  2400200014: 'infer文件读取失败',
  2400200015: 'infer文件校验失败',
  2400200016: 'infer文件中心节点字段校验失败',
  2400200017: 'infer文件边缘节点字段校验失败',

  270001000: '获取日志失败，请重试',
  280000025: '还有正在运行的任务，无法删除！',

  510100001: '需要修改初始密码',
  510100002: '输入的密码不正确',
  510100003: '该账号被锁定30分钟',
  510100004: '该账号被其他用户登录',
  510100005: '此用户名已经存在于当前组织',
  510100006: '该用户无法重置密码',
  510100007: '重复密码于新密码不匹配',

  510110001: '创建用户失败',
  510110002: '修改用户信息失败',
  510110003: '无法获取数据',
  510110005: '记录不存在',
  510110006: '删除用户失败',
  510110007: '修改密码失败',
  510110008: '用户登出失败',
  510110011: "新密码不能与原密码一致",
  510130013: "登录失效，请重新登录",
  510110014: "当前用户没有权限在该组织中创建用户",
  510110017: "用户名或密码错误",
  510110018: "原密码错误",

  510120001: '创建角色失败',
  510120002: '修改角色失败',
  510120003: '查询角色失败',
  510120004: '删除用户失败',
  510120302: "该角色已关联用户组，请先删除关联的用户组",
  510150002: "该角色已经存在",

  510120101: "该组织已经存在",
  510120102: "已选的虚拟集群不能改变",
  510120103: "查询组织失败",
  510120104: "该组织中存在用户组信息，请先移除所有用户组信息",
  510120106: "所选的虚拟集群已分配给其它组织了",

  510120201: "该用户组已经存在",
  510120202: "该用户组已经存在组织管理员",
  510120203: "查询用户组失败",
  510120204: "删除用户组失败",
  510120206: "该用户没有权限删除",
  510120207: "sys_admin_grp是系统关键字，请换个账号名称",
  510120208: "该组织已经有一个组织管理员组了",
  510120209: "所选的资源配额已分配给其它组了",

  700010001: 'Not Found Error',
  700010002: '未知错误',
  700010003: '服务器异常',
  700020001: '参数检验错误',
  700020002: '权限认证失败',
  700030001: '清理服务失败',

};